package com.cqut.service;

import java.util.List;
import java.util.Map;

import com.cqut.dto.CodeManagerDTO;
import com.cqut.dto.ComParamDTO;
import com.cqut.dto.LimitShowDTO;
import com.cqut.model.ComParam;

public interface IComParamService {
    boolean save(ComParam comParam);

    boolean update(ComParam comParam);

    boolean delete(String comParamId);

    boolean batchDelete(String[] comParamId);

    ComParam findModel(String comParamId);

    ComParam findModel(String comParamId, String[] parameters);

    Map<String, Object> findMap(String comParamId);

    Map<String, Object> findMap(String comParamId, String[][] parameters);

    List<ComParam> loadModels();

    List<ComParam> loadModels(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<ComParam> loadModels(String[] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps();

    List<Map<String, Object>> loadMaps(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps(String[][] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    long count();

    long count(String condition, Object[] values);

    long count(String[] parameters, boolean isDistinct);

    long count(String[] parameters, String condition, Object[] values, boolean isDistinct);

	boolean duplicateCheckingComParamName(String validationDate);
	
	List<Map<String,Object>> findChildrenByComParamType(String comParamType);
	
	boolean addTableComParam(ComParamDTO comParamDTO);

	boolean deleteTableComParamsByParamComParams(String[] comParamNoArray);
	
	Map<String, Object> getDetailById(String comParamId);

	List<Map<String, Object>> getComParamList(String comParamName, String parentId, LimitShowDTO limitShowDTO);

	long getComParamListCount(String parentId, String comParamName);

	boolean CheckingComParamType(String validationDate);

}
